package com.qixiaobao.system.service;

import com.qixiaobao.system.domain.Dict;

import java.util.List;

/**
 * @Description 字典 业务层
 * @Author yangxm
 * @Date 2025/6/18 8:57
 */
public interface IDictService {

    /**
     * @Description 查询供应商全称
     * @Author yangxm
     * @Date 2025/6/18 8:59
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectSupplyNameSelect(List<Long> noPermissionSupplyIdList);

    /**
     * @Description 保单管理-待生效、在保中、已失效、退保已失效，所属供应商下拉
     * @Author yangxm
     * @Date 2025/6/18 9:01
     * @param gurantStatus
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectBelongToSupplySelect(String gurantStatus);

    /**
     * @Description 供应商简称下拉
     * @Author yangxm
     * @Date 2025/6/18 9:01
     * @param supplyNameList
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectSupplyShortNameSelect(List<String> supplyNameList, List<Long> noPermissionSupplyIdList);

    /**
     * @Description 获取权限字典
     * @Author yangxm
     * @Date 2025/6/18 9:01
     * @param type
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectPermissionDictListByType(String type, List<Long> noPermissionSupplyIdList);

    /**
     * @Description 匹配后供应商简称下拉
     * @Author yangxm
     * @Date 2025/6/18 9:01
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectToSupplyShortNameSelect();

    /**
     * @Description 增减员记录  -  所属供应商下拉
     * @Author yangxm
     * @Date 2025/6/24 9:08
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectAddminusBelongToSupplySelect();

    /**
     * @Description 根据字典类型查询字典
     * @Author yangxm
     * @Date 2025/6/24 17:06
     * @param type
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectDictListByType(String type);

    /**
     * @Description 付款单位下拉
     * @Author yangxm
     * @Date 2025/6/27 9:30
     * @param noPermissionSupplyIdList
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectPayCompanySelect(List<Long> noPermissionSupplyIdList);

    /**
     * @Description 非直投结算管理，所属供应商下拉
     * @Author yangxm
     * @Date 2025/6/27 9:37
     * @return java.util.List<com.qixiaobao.nondirect.invoice.domain.domain.Dict>
     */
    List<Dict> selectNonDirectBelongToSupplySelect();
}
